#pragma rtGlobals=1 // Use modern global access method. /////////////////////////////////////////////////////////////////////////////////////////// //nmをeVに変換するプログラム(2003.07.23) // // Edit:タナカサトシ // // @変換したいウェーブを複数選択 // // A対応する横軸をひとつ選択 // // B出力Yウェーブの添え字を入力 // // C出力Xウェーブ名を入力 // // // /////////////////////////////////////////////////////////////////////////////////////////// macro convert_nm_to_eV() variable v1 v1=convert_nm_to_eV_2() endmacro function convert_nm_to_eV_2() //パネルの作成 //その前に「panelC」が存在するか確かめる。 variable v1,v2,v3 v1=strlen(winlist("panelC",";","WIN:64")) if(v1==0) //「panelC」が存在しないとき //障害となる他のパネルが稼動していないことを確認する //「panelA」「panelB」の存在を調べる。 v2=strlen(winlist("panelA",";","WIN:64")) if(v2==0) //「panelA」が存在しないとき、「panelB」の存在を調べる。 v3=strlen(winlist("panelB",";","WIN:64")) if(v3==0) //「panelA」「panelB」「panelC」全て存在しないとき、「panelC」の作成作業に移行する print "「panelC」を作成します。" ///////////////////////////////////////// panelC_Open() //「panelC」を作成 ///////////////////////////////////////// else //「panelC」「panelA」は存在しないけれど、「panelB」が存在するとき、エラーをだして中断する doalert 0,"他の解析メニューによるパネルが動作しています。他のパネルを閉じてからやり直してください。" dowindow/F panelB endif else //「panelA」が存在するとき、エラーをだして中断する doalert 0,"他の解析メニューによるパネルが動作しています。他のパネルを閉じてからやり直してください。" dowindow/F panelA endif else ////「panelC」が存在するとき、エラーをだして中断する doalert 0,"すでに「panelC」が開いてます。閉じてから実行してください。" dowindow/F panelC endif //以上、「panelC」作成前の、確認作業。 end // function panelC_Open() //「panelC」を作成します。 newpanel/k=2/W=(200,80,500,380) as "panelC:(nm)から(eV)に変換します。" //k=2(ウィンドウを閉じるボタンを無効) DoWindow/C panelC //リネイム //説明文@ titlebox tib0,title="@変換したいYウェーブを選択してください。(Shift)+(Click)",frame=0,pos={10,5} //説明文A titlebox tib1,title="A対応するXウェーブを1つ選択してください。",frame=0,pos={10,220} //ポップアップメニューを作成(X軸ウェーブ選択用) PopupMenu pmnu_x,pos={235,236},bodyWidth=280,mode=1,value=WaveList("*",";","") PopupMenu pmnu_x, disable=0 //ラインの配置 DrawLine 10,260,280,260 //ボタンの配置 Button button_exit,pos={50,275},size={50,18},proc=But_close_panelC,title="閉じる" Button button_exit,help={"このウィンドウを閉じます。"} Button button_cancel,pos={130,275},size={50,18},proc=But_help,title="ヘルプ" Button button_cancel,help={"ヘルプを表示します。"} Button button_next,pos={220,275},size={50,18},proc=But_next,title="次へ" Button button_next,help={"次の作業に移行します。"} //リストボックスの配置/////////////////////////////////////////////////////////////// //そのまえに、ウェーブ名のリストから、ウェーブ名が要素であるテキストウェーブを作成する string/g wlist=WaveList("*",";","") //root:上の全てのウェーブをリストで出力→グローバル変数で保存 variable NumberOfWaves=ItemsInList(wlist) //いくつウェーブがあるか取得 make/O/T/N=(NumberOfWaves) wlistwave //ウェーブ名が要素のテキストウェーブを作成 make/O/N=(NumberOfWaves) sjack //wlistwaveに対応するリストの選択状態を保持する数値ウェーブ wave/T w1=wlistwave wave w2=sjack variable v1=0 do w1[v1]=StringFromList(v1,wlist) w2[v1]=0 v1=v1+1 while(v1